package cn.maxhou.t0008;

import java.lang.reflect.Field;

public class AccessPersonFields {
    public static void main(String[] args) {
        try{
            //通过反射加载一个Person实例
            Class cls=Class.forName("cn.maxhou.t0001to2.Person");
            Object person=cls.newInstance();
            //获取private String name属性
            Field name=cls.getDeclaredField("name");
            // name属性为private，这里已超出其访问范围，不能直接访问
            // 通过 setAccessable方法，设定为可以访问
            name.setAccessible(true);
            //先取值看一下
            System.out.println(name.get(person));
            //为name属性赋值
            name.set(person,"New Person");
            //展示一下赋值效果
            System.out.println("赋值后的name: "+name.get(person));
            name.setAccessible(true);
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}
